package com.atguigu.gmall.product;

import com.baomidou.mybatisplus.annotation.TableField;
import io.minio.MinioClient;
import io.minio.PutObjectOptions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.FileInputStream;

/**
 * @ClassName UpdateFile
 * @Description 此类描述:
 * @Author dangchen
 * @DateTime 2022-11-01 0:10
 * @Version 1.0
 */
@SpringBootTest
public class UpdateFile {

    @Test
    void updateTest(){
        try {
            //1、创建出MinioClient 端口号给9001报错
            MinioClient minioClient = new MinioClient("http://192.168.81.81:9000",
                    "admin",
                    "admin123456");

            System.out.println(minioClient.getBucketPolicy("gmall"));
            System.out.println("------------");

            //2、判断桶是否存在
            boolean isExist = minioClient.bucketExists("gmall");
            if(isExist) {
                System.out.println("gmall Bucket already exists.");
            } else {
                // 创建一个名为asiatrip的存储桶，用于存储照片的zip文件。
                minioClient.makeBucket("gmall");
            }

            /**
             * String bucketName, 桶名
             * String objectName, 对象名（文件名）
             * InputStream is, 对象的具体数据流
             * PutObjectOptions options 参数
             */
            //4、开始上传
            FileInputStream inputStream = new FileInputStream("F:\\壁纸\\girl.jpg");

            //上传参数
            /**
             * 10G
             * 100mb
             *
             * long objectSize, 对象大小
             * long partSize 部件大小
             */
            PutObjectOptions options =
                    new PutObjectOptions(inputStream.available(),-1L);
            options.setContentType("image/jpg");

            minioClient.putObject("gmall","girl.jpg",inputStream,options);

            System.out.println("上传完成");
        } catch(Exception e) {
            System.out.println("Error occurred: " + e);
        }
    }
}
